home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 …SCII & the Runetime Code / ADC Developer CD (1992-07) (''Butch ASCII And The Runtime Code'')_iso / Dev.CD 199207.iso / Developer Essentials / MPW Interfaces & Libraries / AIncludes / FSPrivate.a < prev    next >
Encoding:
Text File  |  1992-01-29  |  21.0 KB  |  511 lines  |  [TEXT/MPS ]

  1. ; Version: 2.96
  2. ; Created: Friday, October 20, 1989 at 9:18:00 PM
  3. ;
  4. ; File: FSPrivate.a
  5. ;
  6. ; Assembler Interface to the Macintosh Libraries
  7. ; Copyright Apple Computer, Inc. 1984-1991
  8. ; All Rights Reserved
  9. ;
  10. ;--------------------------------------------------------------------
  11. ;
  12. ; The following information was formerly in "private" files that were
  13. ; not released to the general developer community.
  14. ;
  15. ; The information in this file is not needed for normal application
  16. ; development. These equates and macros were necessary for development
  17. ; of the Macintosh ToolBox and Operating System, and are likely to be
  18. ; dependent on their current implementation. Use of any information
  19. ; in this file is likely to cause your software to fail on future
  20. ; versions of Macintosh system software or hardware.
  21. ;
  22. ; Apple Developer Support will not support any use of the following
  23. ; information.
  24. ;
  25. ; In order to prevent any "accidental" use of this information, it has
  26. ; been disabled using the conditional-assembly variable defined below.
  27. ; If you change this to a non-zero value, you're on your own.
  28. ;--------------------------------------------------------------------
  29.  
  30.     IF &TYPE('__IncludingFSPrivate__') = 'UNDEFINED' THEN
  31. __IncludingFSPrivate__    SET    1
  32.  
  33.  
  34.                   IF          (&TYPE('FSPNonPortable') = 'UNDEFINED') THEN
  35. FSPNonPortable    EQU         0
  36.                   ENDIF
  37. HFSDebug          EQU         0                         ; include HFS debug traps if 1
  38.  
  39.  
  40.                   IF          FSPNonPortable THEN       ;begin exclusion of private information
  41. ; Function: This file contains the complete File System equates for MFS and HFS. It is
  42. ; an extension of the equates defined by old FSEQU.a
  43.  
  44. ;
  45. ; Constant definitions
  46. ;
  47. btsPrBlk          EQU         12                        ; bits per block in volume map (FS volume)
  48. ; ExtendFile option flags
  49.  
  50. EFContig          EQU         1                         ; force contiguous allocation
  51. EFAll             EQU         0                         ; allocate all requested bytes or none
  52. kEFContig         EQU         2                         ; corresponding constants for MOVEQ
  53. kEFAll            EQU         1
  54.  
  55. ; TruncateFile option flags
  56.  
  57. TFTrunExt         EQU         0                         ; truncate to the extent containing new PEOF
  58. kTFTrunExt        EQU         1                         ; corresponding constants for MOVEQ
  59.                   MACRO                                 ; HFS debugging halt trap
  60.                   _HFSDebug
  61.                   IF          HFSDebug THEN             ; only included when actually debugging
  62.                   IF          &Syslst[1]<>'' THEN
  63.                   DC.W        ($F000+&Syslst[1])        ; in case a trap sub-code is specified
  64.                   ELSE
  65.                   DC.W        ($A9FF)                   ; User break
  66.                   ENDIF
  67.                   ENDIF
  68.                   ENDM
  69.  
  70.                   MACRO                                 ; HFS error halt trap
  71.                   _HFSDSErr
  72.                   _HFSDebug   &Syslst[1]                ; Pause first if debugging
  73.                   MOVEQ       #DSFSErr,D0               ; Error code = 27, Fatal File System Error
  74.                   _SysError                             ; Stop the engines
  75.                   ENDM
  76.  
  77.                   ENDIF                                 ;end exclusion of private information
  78.  
  79. strtDir           EQU         2                         ; directory master block location (block #)
  80. bufSiz            EQU         512                       ; standard file system buffer size in bytes
  81. hdrSiz            EQU         10                        ; size of header prefixed to buffer
  82. bufModBit         EQU         7                         ; dirty bit in high byte of buf tag word
  83. bufFNum           EQU         -10                       ; offset from buf start to file number longword
  84. bufFlags          EQU         -6                        ; offset from buf start to file flags word
  85. bufFBlk           EQU         -4                        ; offset from buf start to file block word
  86. bufTag            EQU         -2                        ; offset from buf start to tag word
  87. nxFreeFN          EQU         16                        ; next free file number
  88. nxFreeDID         EQU         3                         ; next free directory id
  89. alBlkSize         EQU         512                       ; default allocation block size (1 sector, in bytes)
  90. clpSize           EQU         4*512                     ; default allocation clump size (in bytes)
  91.  
  92.  
  93. maxHFSTrap        EQU         17                        ; Highest TFS trap dispatch index
  94.  
  95.  
  96. ;_______________________________________________________________________
  97.  
  98. ; fixed location labels: (equivalent of zero page)
  99.  
  100.  
  101. hfsVars           EQU         $36A                      ; Start of TFS variables in RAM version
  102. ; (previously RgSvArea)
  103. hfsTmpSize        EQU         16                        ; Additional temporary space for TFS
  104. hfsStkLen         EQU         1280                      ; Allocate a decent-sized chunk of memory
  105. HFSStkTop         EQU         $36A                      ; Temporary location of pointer to top of Stack
  106. HFSStkPtr         EQU         $36E                      ; Temporary location of TFS Stack pointer
  107. WDCBsPtr          EQU         $372                      ; Working Directory queue header
  108. HFSFlags          EQU         $376                      ; Internal TFS flags
  109. DefVRefNum        EQU         $384                      ; Default volume's VRefNum (COULD BE WDRefNum!)
  110.  
  111. ;
  112. ; Flag bits in HFSFlags byte:
  113. ;
  114. hfsReq            EQU         0                         ; Set if request is specific to TFS
  115. dirCN             EQU         1                         ; Set if a CNode is a directory
  116. hfsContd          EQU         7                         ; Set if Async trap is continued
  117. noPMSP            EQU         6                         ; Set to disable PMSP completely (status flag)
  118. skipPMSP          EQU         5                         ; Set to skip PMSP setup (one-shot)
  119. SysCRefCnt        EQU         $377                      ; Usage count byte for system caches (number of vols)
  120. CacheFlag         EQU         $377                      ; cache usage count now used as cache flag
  121. CacheVars         EQU         $394
  122. cacheCom          EQU         $39C
  123. noRWIPBit         EQU         7
  124. diskRdBit         EQU         6
  125. dontInstRC        EQU            5                        ; set if don't load ramcache in the boot process.    <22May90>
  126.                                                     ; so the RamCache INIT supercedes System's.            <22May90>
  127. SysBMCPtr         EQU         $378                      ; System-wide bitmap cache pointer
  128. SysVolCPtr        EQU         $37C                      ; System-wide volume cache pointer
  129. SysCtlCPtr        EQU         $380                      ; System-wide control cache pointer
  130. PMSPPtr           EQU         $386                      ; Pointer to list of directories on PMSP
  131. HFSDSErr          EQU         $392                      ; Final gasp - error that caused IOErr.
  132. HFSVarEnd         EQU         $394                      ; End of hfs variable area
  133. hfsStkOvf         EQU         99                        ; Deep trouble alert - HFS stack overflowed.
  134. CurDB             EQU         $340                      ; current directory block
  135. FSCallAsync       EQU         $342                      ; ONE BYTE FREE
  136. NewMount          EQU         $34A                      ; (1) used by MountVol to flag new mounts
  137. NoEject           EQU         $34B                      ; used by Eject and Offline
  138. DrMstrBlk         EQU         $34C                      ; master directory block in a volume
  139. ErCode            EQU         $3A2                      ; use this loc to report errors during async
  140. ; routines
  141. FSIOErr           EQU         $3DE                      ; last I/O error (NEXT WORD FREE)
  142. FSQueueHook       EQU         $3E2                      ; hook to capture all FS calls
  143. ExtFSHook         EQU         $3E6                      ; command done hook
  144. DskSwtchHook      EQU         $3EA                      ; hook for disk-switch dialog
  145. ReqstVol          EQU         $3EE                      ; ptr to VCB of off-line or ext fs volume
  146. FSVarEnd          EQU         $3F6                      ; end of file system variables
  147. fsVarLth          EQU         $B6
  148. fsClrWDLen        EQU         $A2                       ;length to clear in boot blocks
  149.  
  150.  
  151. ; Internal File System Error codes
  152. ;
  153. ; Cache errors
  154.  
  155. chNoBuf           EQU         1                         ; no free cache buffers (all in use)
  156. chInUse           EQU         2                         ; requested block in use
  157. chnotfound        EQU         3                         ; requested block not found
  158. chNotInUse        EQU         4                         ; block being released was not in use
  159.  
  160. ; FXM Internal error codes:
  161.  
  162. fxRangeErr        EQU         16                        ; file position beyond mapped range
  163. fxOvFlErr         EQU         17                        ; extents file overflow
  164.  
  165. ; TFS internal errors
  166.  
  167. fsDSIntErr        EQU         -127                      ; Internal file system error
  168.  
  169. ; BTree error codes
  170.  
  171. btnotfound        EQU         32                        ; record not found
  172. btexists          EQU         33                        ; record already exists
  173. btnospace         EQU         34                        ; no available space
  174. btnoFit           EQU         35                        ; record doesn't fit in node 
  175. btbadNode         EQU         36                        ; bad node detected
  176. btbadHdr          EQU         37                        ; bad BTree header record detected
  177. dsBadRotate       EQU         64                        ; bad BTree rotate
  178.  
  179. ; CM result codes
  180.  
  181. cmnotfound        EQU         48                        ; CNode not found
  182. cmexists          EQU         49                        ; CNode already exists
  183. cmnotempty        EQU         50                        ; directory CNode not empty (valence = 0)
  184. cmRootCN          EQU         51                        ; invalid reference to root CNode
  185. cmbadnews         EQU         52                        ; detected bad catalog structure
  186.  
  187. ; File IDs result codes
  188.  
  189. cmFThdDirErr      EQU         53                        ; thread belongs to a directory not a file
  190. cmFThdGone        EQU         54                        ; file thread doesn't exist
  191.  
  192. ;
  193. ; extent key record (prefix xkr)
  194. ;
  195.  
  196. dataFk            EQU         $00                       ; data fork type
  197. rsrcFk            EQU         $FF                       ; resource fork type
  198.  
  199. xkrKeyLen         EQU         0                         ; key length (byte)
  200. xkrFkType         EQU         1                         ; fork type (byte)
  201. xkrFNum           EQU         2                         ; file number (long)
  202. xkrFABN           EQU         6                         ; starting file allocation block number (word)
  203. lenxkr            EQU         8                         ; length of a xkr
  204.  
  205. ;
  206. ; extent data record (prefix xdr)
  207. ;
  208. numExts           EQU         3                         ; number of extents per record
  209. lenExt            EQU         4                         ; length of an extent entry
  210. maxExtOff         EQU         lenExt*numExts-lenExt     ; max extent entry offset
  211. xdrStABN          EQU         0                         ; starting physical allocation block number (word)
  212. xdrNumABlks       EQU         2                         ; number of allocation blocks (word)
  213. lenxdr            EQU         12                        ; length of a xdr (3 extent entries)
  214.  
  215. ;
  216. ; FXM variables (FXVars) storage layout
  217. ;
  218. fxvFlags          EQU         0                         ; FXM Flags (byte)
  219. fxvTContig        EQU         6                         ; ...try contiguous allocation first
  220. fxvFContig        EQU         7                         ; ...force contiguous allocation
  221. fxvResrv          EQU         1                         ; reserved (byte)
  222. fxvxkrOff         EQU         2                         ; offset to extent key record
  223. fxvxdrOff         EQU         fxvxkrOff+lenxkr          ; offset to extent data record
  224. lenFXVars         EQU         fxvxdrOff+lenxdr          ; length of FXM vars
  225.  
  226.  
  227.  
  228. ;
  229. ; Cache Queue header (prefix cqh)
  230. ;
  231. cqhFlink          EQU         0                         ; (long) forward link pointer
  232. cqhBlink          EQU         4                         ; (long) backward link pointer
  233. cqhNumBuf         EQU         8                         ; (word) number of buffers
  234. cqhBufSize        EQU         10                        ; (word) buffer size
  235. LenCQH            EQU         12                        ; length of CQH
  236. ;
  237. ; Cache Buffer Header definition (prefix cbh)
  238. ;
  239. cbhFlink          EQU         0                         ; (long) forward link
  240. cbhBlink          EQU         4                         ; (long) backward link
  241. cbhVCBPtr         EQU         8                         ; (long) VCB pointer
  242. cbhFlNum          EQU         12                        ; (long) file number
  243. cbhFRefNum        EQU         16                        ; (word) file refnum
  244. cbhDBlk           EQU         18                        ; (long) disk block number (-1 = empty)
  245. cbhFlBlk          EQU         22                        ; (long) file block number
  246. cbhFlags          EQU         26                        ; (byte) flags
  247. cbhdirty          EQU         7                         ; ...buffer dirty flag
  248. cbhinuse          EQU         6                         ; ...buffer in use flag
  249. cbhempty          EQU         5                         ; ...buffer is empty
  250. cbhFkType         EQU         27                        ; (byte) fork type
  251. ; ...$00 = data fork
  252. ; ...$FF = resource fork
  253. cbhData           EQU         28                        ; start of buffer data area
  254. lenCBH            EQU         28                        ; length of cbh
  255.  
  256. ; Local buffer equates
  257.  
  258. cobDBlk           EQU         cbhDBlk                   ; (long) disk block
  259. cobFlBlk          EQU         cbhFlBlk                  ; (long) file block
  260. cobFlags          EQU         cbhFlags                  ; (byte) flags (only dirty bit is used)
  261.  
  262. ; FlushCache option flags
  263. fCfreeBit        EQU            1                         ; free buffers after flush (save in the hash)    <27Aug90>
  264. fCtrash           EQU         0                         ; trash buffer contents after flush
  265. ;; kFCfree works as kFCtrash on pre-7.0 RamCache    ; on 7.0, kFCfree overrides kFCtrash            <28Aug90>
  266. kFCfree            EQU            3                        ; corresponding constant for MOVEQ load            <27Aug90>
  267. kFCtrash          EQU         1                         ;
  268.  
  269. ; GetBlock option flags
  270.  
  271. gbrelease         EQU         3                         ; release block immediately after get
  272. gbnoRead          EQU         2                         ; don't read block from disk
  273. gbexist           EQU         1                         ; get existing cache block
  274. gbRead            EQU         0                         ; read block from disk (forced read)
  275. kGBrelease        EQU         8                         ; corresponding constants for MOVEQ load
  276. kGBnoRead         EQU         4                         ;
  277. kGBexist          EQU         2                         ;
  278. kGBRead           EQU         1                         ;
  279.  
  280. ; RelBlock option flags
  281. rbfreeBit         EQU         3                         ; free the buffer (save in the hash)            <27Aug90>
  282. rbdirty           EQU         2                         ; mark buffer dirty
  283. rbtrash           EQU         1                         ; trash buffer contents after release
  284. rbwrite           EQU         0                         ; force write buffer to disk
  285. ;; kRBfree works as kRBtrash on pre-7.0 RamCache    ; on 7.0, kRBfree overrides kRBtrash            <28Aug90>
  286. kRBfree          EQU         10                         ; corresponding constants for MOVEQ load        <27Aug90>
  287. kRBdirty          EQU         4                         ; corresponding constants for MOVEQ load
  288. kRBtrash          EQU         2                         ;
  289. kRBwrite          EQU         1                         ;
  290.  
  291.  
  292.  
  293. ;
  294. ; BTree constants
  295. ;
  296. btNodeSize        EQU         512                       ; default node size
  297. btMaxDepth        EQU         8                         ; max tree depth (don't change this)
  298.  
  299. ;
  300. ; Tree Path Record (TPR)
  301. ;
  302. tprNodeN          EQU         0                         ; node number (long)
  303. tprRIndx          EQU         4                         ; record index (word)
  304. lenTPR            EQU         6                         ; length of TPR
  305. lenTPT            EQU         lenTPR*btMaxDepth         ; length of Tree Path Table
  306.  
  307. ;
  308. ; Node Descriptor (prefix nd)
  309. ;
  310. ndFlink           EQU         0                         ; forward link (long)
  311. ndBlink           EQU         4                         ; backward link (long)
  312. ndType            EQU         8                         ; node type (byte)
  313. ndHdrNode         EQU         1                         ; ...header node
  314. ndMapNode         EQU         2                         ; ...map node
  315. ndIndxNode        EQU         0                         ; ...index node
  316. ndLeafNode        EQU         $FF                       ; ...leaf node
  317. ndNHeight         EQU         9                         ; node height
  318. ndNRecs           EQU         10                        ; number of records (word)
  319. ndResv2           EQU         12                        ; reserved (word)
  320. lenND             EQU         14                        ; length of node descriptor
  321.  
  322. ;
  323. ; BTree Header (bth) on disk
  324. ;
  325. bthDepth          EQU         0                         ; current depth of tree (word)
  326. bthRoot           EQU         2                         ; root node number (long)
  327. bthNRecs          EQU         6                         ; number of leaf records in BTree (long)
  328. bthFNode          EQU         10                        ; node number of 1st leaf node (long)
  329. bthLNode          EQU         14                        ; node number of last leaf node (long)
  330. bthNodeSize       EQU         18                        ; BTree node size in bytes (word)
  331. bthKeyLen         EQU         20                        ; Max. key length (word)
  332. bthNNodes         EQU         22                        ; total number of nodes (long)
  333. bthFree           EQU         26                        ; number of free nodes (long)
  334. lenMemBTH         EQU         30                        ; length of memory resident portion of BTH
  335. ;
  336. bthResv           EQU         30                        ; reserved (76 bytes)
  337. LenBTH            EQU         106                       ; length of a BTH
  338. ;
  339. ; BTree Control Block (btcB) in memory
  340. ;
  341. btcFlags          EQU         0                         ; flags (byte)
  342. btcDirty          EQU         7                         ; ...dirty flag
  343. btcKeyUpd         EQU         6                         ; ...index key update required
  344. btcNewIRec        EQU         5                         ; ...new index record required
  345. btcDelIRec        EQU         4                         ; ...index record delete required
  346. btcResv           EQU         1                         ; reserved (byte)
  347. btcRefNum         EQU         2                         ; file refnum (word)
  348. btcKeyCR          EQU         4                         ; pointer to ext key compare routine (long)
  349. btcCQPtr          EQU         8                         ; pointer to cache queue (long)
  350. btcVarPtr         EQU         12                        ; pointer to BTree variables (long)
  351. btcLevel          EQU         16                        ; current level (word)
  352. btcNodeM          EQU         18                        ; current node mark (long)
  353. btcIndexM         EQU         22                        ; current index mark (word)
  354. ;
  355. ; this part of a btcB is the memory resident portion of the BTH
  356. ;
  357. btcDepth          EQU         24                        ; current depth of tree (word)
  358. btcRoot           EQU         26                        ; root node number (long)
  359. btcNRecs          EQU         30                        ; number of leaf records in BTree (long)
  360. btcFNode          EQU         34                        ; node number of 1st leaf node (long)
  361. btcLNode          EQU         38                        ; node number of last leaf node (long)
  362. btcNodeSize       EQU         42                        ; BTree node size in bytes (word)
  363. btcKeyLen         EQU         44                        ; max key length (word)
  364. btcNNodes         EQU         46                        ; total number of nodes (long)
  365. btcFree           EQU         50                        ; number of free nodes (long)
  366. LenBTCB           EQU         54                        ; length of a BTCB
  367.  
  368. ;
  369. ; BTree Variables (btVars) layout
  370. ;
  371. btVTPTable        EQU         0                         ; Tree Path Table
  372. btVRecord         EQU         btVTPTable+lenTPT         ; record buffer
  373.  
  374.  
  375.  
  376. ;
  377. ; constants
  378. ;
  379. cmMaxKey          EQU         37                        ; max catalog key length
  380. cmMaxCName        EQU         31                        ; max CName length
  381. cmClpSize         EQU         20                        ; catalog clump size
  382. ;
  383. ; CNode types
  384. ;
  385. cmDirCN           EQU         1                         ; directory CNode
  386. cmFilCN           EQU         2                         ; file CNode
  387. ;
  388. ; catalog key record (prefix ckr)
  389. ;
  390. ckrKeyLen         EQU         0                         ; key length (byte)
  391. ckrResrv1         EQU         1                         ; reserved (byte)
  392. ckrParID          EQU         2                         ; parent directory ID (long)
  393. ckrCName          EQU         6                         ; CNode name (str31)
  394. lenckr            EQU         38                        ; length of a ckr
  395.  
  396. ;
  397. ; catalog data record (prefix cdr)
  398. ;
  399. cdrType           EQU         0                         ; record type (byte)
  400. cdrResrv2         EQU         1                         ; reserved (byte)
  401. cdrData           EQU         2                         ; start of catalog record data
  402.  
  403. ;
  404. ; catalog data record types (variants)
  405. ;
  406. cdrDirRec         EQU         cmDirCN                   ; directory record (directory CNode type)
  407. cdrFilRec         EQU         cmFilCN                   ; file record (file CNode type)
  408. cdrThdRec         EQU         3                         ; thread record
  409. cdrFThdRec        EQU         4                         ; file thread record
  410.  
  411. ;
  412. ; catalog directory record (prefix dir)
  413. ;
  414. dirFlags          EQU         2                         ; flags(word)
  415. dirVal            EQU         4                         ; valence (word)
  416. dirDirID          EQU         6                         ; DirID for this directory (long)
  417. dirCrDat          EQU         10                        ; date/time created (long)
  418. dirMdDat          EQU         14                        ; date/time last modified (long)
  419. dirBkDat          EQU         18                        ; date/time last backed up (long)
  420. dirUsrInfo        EQU         22                        ; User info bytes (16 bytes)
  421. dirFndrInfo       EQU         38                        ; Finder Info bytes (16 bytes)
  422. dirResrv          EQU         54                        ; reserved (16 bytes)
  423. lendir            EQU         70                        ; length of a directory record
  424.  
  425. ;
  426. ; catalog thread record (prefix thd)
  427. ;
  428. thdResrv          EQU         2                         ; reserved (8 bytes)
  429. thdParID          EQU         10                        ; Parent ID for this directory (long)
  430. thdCName          EQU         14                        ; CName for this directory (str31)
  431. lenthd            EQU         46                        ; length of a thread record
  432.  
  433. ;
  434. ; catalog file record (prefix fil)
  435. ;
  436. fThreadFlag       EQU         1                         ; bit offset into filFlags (set if thd exists)
  437.  
  438. filWrtFlag        EQU         0                         ; write-allowed bit in flags byte (0 if allowed)
  439. filTypMask        EQU         $FE                       ; (user file-type in bits 1-7)
  440. filFlags          EQU         2                         ; bit 7=1 (used), bit 0=file lock flag, bit 1=fthread
  441. filTyp            EQU         3                         ; file type (used as a name extension)
  442. filUsrWds         EQU         4                         ; user words for file. (16 bytes)
  443. filFlNum          EQU         20                        ; file number
  444. filStBlk          EQU         24                        ; Start file block (alloc blk size)(0000 if none)
  445. filLgLen          EQU         26                        ; File logical length in bytes (EOF)
  446. filPyLen          EQU         30                        ; File physical length in bytes
  447. filRStBlk         EQU         34                        ; Start file block, resource fork (0000 if none)
  448. filRLgLen         EQU         36                        ; File logical length (EOF), resource fork
  449. filRPyLen         EQU         40                        ; File physical length, resource fork
  450. filCrDat          EQU         44                        ; date/time created (long)
  451. filMdDat          EQU         48                        ; date/time last modified (long)
  452. filBkDat          EQU         52                        ; date/time last backed up (long)
  453. filFndrInfo       EQU         56                        ; Additional finder info for file (16 bytes)
  454. filClpSize        EQU         72                        ; file clump size (word)
  455. filExtRec         EQU         74                        ; First 3 data fork extents (12 bytes)
  456. filRExtRec        EQU         86                        ; First 3 resource fork extents (12 bytes)
  457. filResrv          EQU         98                        ; reserved (4 bytes)
  458. lenfil            EQU         102                       ; length of a file record
  459. lencdr            EQU         lenfil                    ; max length of a catalog data record
  460.  
  461. ;
  462. ; CM variables (CM vars) storage layout
  463. ;
  464. ckrOff            EQU         0                         ; offset to catalog key record buffer
  465. cdrOff            EQU         ckrOff+lenckr             ; offset to catalog data record buffer
  466. lenCMVars         EQU         lencdr+lenckr             ; length of CM vars
  467.  
  468. ;
  469. ; FileIDs variables 
  470. ;
  471. fidBogusExtID     EQU         15                        ; use this for exchanging extents in extents file
  472.  
  473. lenCID            EQU         4                         ; length of a cnode id
  474. numExtToCache     EQU         4                         ; just guessing for ExchangeFiles
  475. destExt           EQU         0                         ; offset into extFlgsOff if destination has extents
  476. srcExt            EQU         1                         ; offset into extFlgsOff if source has extents
  477.  
  478. ; fid vars storage layout
  479. tempKeyOff        EQU         0                         ; BEST BE FIRST, SO LOCCREC CAN BE CALLED ALSO!
  480. extOff            EQU         lenCMVars                 ; set up 4 extents
  481. srcDIDOff        EQU            extOff+(numExtToCache*lenxdr)+(numExtToCache*lenxkr); 
  482. destDIDOff        EQU         srcDIDOff+lenCID
  483. extFlgsOff        EQU         destDIDOff+lenCID         ; flags for existance of extents in extents file
  484. srcCNode          EQU         extFlgsOff+2              ; cnode of source
  485. destCNode         EQU         srcCNode+lencdr           ; dest cnode
  486.  
  487. lenFIDSwapVars    EQU         lenCMVars+(numExtToCache*lenxdr)+(numExtToCache*lenxkr)+(2*lenCID)+2+(2*lencdr) 
  488.                                                         ; some catalog variables + the extents +
  489.                                                         ; the directory ids of source and dest +
  490.                                                         ; a word for flagging extents in extent file +
  491.                                                         ; the cnode records of source and dest
  492.  
  493.  
  494. ; further file system equates
  495.  
  496. CkdDB             EQU         $340                      ; (2) used when searching the directory
  497. NxtDB             EQU         $342
  498. MaxDB             EQU         $344
  499. FlushOnly         EQU         $346                      ; (1) flag used by UnMountVol,FlushVol,
  500. RegRsrc           EQU         $347                      ; (1) flag used by OpenRF, FileOpen
  501. FLckUnlck         EQU         $348                      ; (1) flag used by SetFilLock,RstFilLock
  502. FrcSync           EQU         $349                      ; (1) when set, all fs calls are sync'ed
  503. RgSvArea          EQU         $36A                      ; reg save during async calls.
  504. Params            EQU         $3A4                      ; 50 bytes long. For I/O parameter blocks.
  505. FSTemp8           EQU         $3D6                      ; used by rename
  506. FSTemp4           EQU         $3DE                      ; used by rename, ckfilmod
  507. fsVrsn            EQU         '1.2A'                    ; Current file system version
  508.  
  509.  
  510.  
  511.     ENDIF    ; ...already included